package oracle;

import java.sql.*;

/*
* 实现：利用Java 链接 Oracle 数据库 crud【查】
* *1.加载驱动 oracle.jdbc.OracleDriver  Oracle10
*           com.mysql.jdbc.OracleDriver  Mysql5.5
* 2.获取链接
*   ①获取Oracle基本信息：地址，用户名，密码
*   ②获取信息交给工具类DriverManager处理，链接成功返回Connection
*   ③打桩厕所，是否链接成功
*   -------------------------JDBC链接成功Oracle---------
*   --------------------------JDBC规范------------
*   ④执行SQL---创建表--Oracle中创建  login表  序号，姓名，手机号
*     Java提到对象  Statement对象  作用：执行SQL语句的类，提供执行SQL方法
*   ⑤处理结果
*
*
* */
public class OracleJDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1,加载驱动--ORACLE版本 10g
        Class.forName("oracle.jdbc.OracleDriver");
        //2.获取链接【准备工作：地址，用户名，密码】
        //①链接oracle基本信息
        String username="system";  //oracle数据库 用户名
        String password="Lyl8411081213";  //密码：自己的连接本地
        //thin 瘦客户端--固定前缀
        String url="jdbc:oracle:thin:@127.0.0.1:1521:XE";
        //②Oracle基本信息交给工具类
        Connection con= DriverManager.getConnection(url,username,password);
        //③打桩：数据库是否链接成功
        System.out.println("测试数据库链接成功"+con);
        //④执行SQL--Statement对象
        //链接成功Oracle之后【connection】，产生Statement对象
        Statement st= con.createStatement();
        //执行SQL查询操作--查询语句
        String sql="select * from login";
        //Statement对象 查询和增删改--查询方法executeQuery返回对象
        //ResultSet对象--保存所以查询的记录数据【字段和记录】
        ResultSet rs=st.executeQuery(sql);
        //⑤处理结果【取所有记录数 1.判断有没有字段 2.取字段中记录数】
        while(rs.next()){//next()判断表中是否有字段，有字段返回true，无字段返回
            //get类型()  取出字段中所有记录数
            int id= rs.getInt("id");
            String name=rs.getString("name");
            String phone=rs.getString("phone");
            System.out.println("login表中所有数据"+id+name+phone);
        }
        //练习：JDBC链接Oracle--login--增加一条记录
        String sql1="insert into login values(6,'林家屯','123456789')";
        System.out.println("增加"+sql1+"记录");
        Statement st1=con.createStatement();
        int s=st1.executeUpdate(sql1);
        System.out.println("增加数据"+s);
        //⑥关闭资源
        rs.close();
        st.close();
        con.close();

    }
}
